package main

import (
	"fmt"
)

var ss = newStuMeg()

//Book 图书信息
type Book struct{
	ID int       //编号
	Name string  //书名
	Press string //出版社
	Num int      //数量（库存）
}

//Book构造函数
func newBook(id,num int,name,press string)*Book{
	return &Book{
		ID:id,
		Name: name,
		Press: press,
		Num: num,
	}
}

//BookMeg 图书合集
type BookMeg struct {
	BookInfo []*Book
}

//BookMeg 构造函数
func newBookMeg()*BookMeg{
	return &BookMeg{
		BookInfo: make([]*Book,0,100),
	}
}

//输入新增图书信息
func InputNewBook()*Book{
	var(
		id int
		name string
		press string
		num int
	)
	fmt.Println("请按要求添加书籍信息！")
	fmt.Println("请输入图书编号")
	fmt.Scanf("%d\n",&id)
	fmt.Println("请输入图书名称")
	fmt.Scanf("%v\n",&name)
	fmt.Println("请输入出版社名称")
	fmt.Scanf("%v\n",&press)
	fmt.Println("请输入图书馆库存")
	fmt.Scanf("%v\n",&num)
	book := newBook(id,num,name,press)
	return book
}


//功能：新增图书
func (b *BookMeg)addBook(book *Book){
	b.BookInfo = append(b.BookInfo,book)
}

//功能：查看书籍信息
func(b *BookMeg)showBook(){
	for _,v:=range b.BookInfo{
		fmt.Printf("书籍编号：%v,书名：%v,出版社:%v,图书馆库存：%v\n",v.ID,v.Name,v.Press,v.Num)
	}
}

////功能：借阅书籍信息
func(b *BookMeg)borrowBook()string{
	var id int
	fmt.Println("请输入需要借阅的图书编号")
	fmt.Scanf("%d\n",&id)
	for i,v:=range b.BookInfo{
		if v.ID == id{         //若该书籍存在
			b.BookInfo[i].Num -=1
			name:=b.BookInfo[i].Name
			return name
		}
	}
	fmt.Printf("编号为%v的书籍不存在！请重新输入",id)
	return "nil"
}

////功能：归还书籍信息
func(b *BookMeg)retBook()string{
	var id int
	fmt.Println("请输入需要归还的图书编号")
	fmt.Scanf("%d\n",&id)
	for i,v:=range b.BookInfo{
		if v.ID == id{         //若该书籍存在
			b.BookInfo[i].Num +=1
			name:=b.BookInfo[i].Name
			return name
		}
	}
	fmt.Printf("编号为%v的书籍不存在！请重新输入",id)
	return "nil"
}
